<?php
class AppelOffreController extends Controller{
	const RESTAURATION = "appel_offre_restaurant";
	const HOTELLERIE = "appel_offre_hotel";
	const PARTICULIER = "Particulier";
	const PRO_RESTO = "Restaurant";
	const PRO_HOTEL = "Hotel";
	
	public function index(){
		$this->set('title',NOM_SITE.' - Appels d\'offres');
		if(isset($_POST['ajouterAppelOffre'])){
			$model = $this->loadModel('AppelOffreManager');
			$titre = isset($_POST['titre']) ? $_POST['titre'] : "";
			$budget = isset($_POST['budget']) ? $_POST['budget'] : "";
			$details = isset($_POST['details']) ? $_POST['details'] : "";
			$produit = isset($_POST['produit']) ? $_POST['produit'] : "";
			$quantite = isset($_POST['quantite']) ? $_POST['quantite'] : "";
			$nom_fichier = isset($_FILES['fichier']['name']) ? $_FILES['fichier']['name'] : "";
			$type_professionnel = $_SESSION['type_utilisateur'];
			$id_professionnel = $_SESSION['id_utilisateur'];
			$erreurs = $this->uploadFichierDevis('fichier',null,true);
			if(empty($erreurs)){
				if($titre!=""){
					if(! is_numeric($budget) && $budget!=""){
						$erreurs['erreur'] = "Le budget doit être un nombre nombre positif non null .";	
					} else if($budget=="" && $nom_fichier==""){
						$erreurs['erreur'] = "Veuillez rensiegné votre budget ou charger un document comportant les
						 renseignement de votre appel d'offre .";
					} else {
						$model->addAppelOffreFournisseur($id_professionnel,$type_professionnel,$titre,$budget,$produit,
						$quantite,$details,$nom_fichier);
						$id = $model->pdo->lastInsertId();
						if($nom_fichier!=""){
							$extension_fichier = strtolower(strrchr($_FILES['fichier']['name'],'.'));
							$chemin = WEBROOT.DS.'fichier_appel_offre'.DS.$id.'fournisseur'.$extension_fichier;
							$this->uploadFichierDevis('fichier',$chemin);	
							$model->updateAppelOffreFournisseur($id,'fichier',$chemin);
						}
					}
				} else {
					$erreurs['erreur'] = "Titre non valide, veuillez recommencer .";
				}
			}
			$this->set('erreurs',$erreurs);
			
			//details des appels d'offres
		} else if(!empty($this->request->params) && $this->request->params[0]=="details"){
				if(count($this->request->params)==2 and is_numeric($this->request->params[1])){
			 		$id_appel_offre = $this->request->params[1];
			 		if(isset($_SESSION['type_appel_offre']) 
			 			&& $_SESSION['type_appel_offre']==AppelOffreController::RESTAURATION){
				 		$donnee = $this->getDetailsAppelOffre($id_appel_offre,AppelOffreController::RESTAURATION);
				 		if(!$donnee){
							$this->renderErreur404(); 
				 		}
				     }
				} else {
					$this->renderErreur404(); 
				}
		} else if(empty($this->request->params) && $this->request->action=="index") {
			$this->set('title',NOM_SITE." - Publication d'appel d'offre"); 
		//affichage des appels d'offres
		} else if(!empty($this->request->params) && ($this->request->params[0]=="restauration")){
			
			$this->set('title',NOM_SITE." - Liste des appels d'offres");	
		} else if(!empty($this->request->params) && ($this->request->params[0]=="hebergement") 
		&& $_SESSION['type_utilisateur']==HOTEL){
			$this->set('title',NOM_SITE." - Liste des appels d'offres");
		} else {
			$this->renderErreur404(); 
		}
	}
	public function appelOffre(){
		$this->set('title',NOM_SITE." - Publication d'appel d'offre");
		
		
	}
	
	public function recherche(){
		$this->set('title','Site Web - Recherche d\'appels d\'offres');
	}
	
	public function gestionAppelOffre(){
		$this->set('title', NOM_SITE.' - Gestion des appels d\'offres');
	}
	
	public function gestionDevis(){
		$this->set('title', NOM_SITE.' - Gestion des devis');
	}
	
	public function getListeAppelOffreFournisseur(){
		$model = $this->loadModel('AppelOffreManager');
		return $model->getListeAppelOffreFournisseur($_SESSION['id_utilisateur']);
	}
	
	public function getListeDevisFournisseur($id_appel_offre){
		$model = $this->loadModel('AppelOffreManager');
		return $model->getListeDevisFournisseur($id_appel_offre);
	}
}